<html>
<head><meta charset="utf-8"><title>why is nightly so attractive? · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html">why is nightly so attractive?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="243928440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243928440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243928440">(Jun 25 2021 at 15:07)</a>:</h4>
<p>branching off of <a href="#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bsteering.20meeting.5D.202021-06-25.201.2E52.20retro.20compiler-team.23435/near/243927905">https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bsteering.20meeting.5D.202021-06-25.201.2E52.20retro.20compiler-team.23435/near/243927905</a><br>
i wonder if it would be a good idea to make it possible to (opt-in) use whatever nightly features are present in beta? or is that what <code>RUSTC_BOOTSTRAP=1</code> allows, and we don't advertise it as such?</p>



<a name="243928641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243928641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243928641">(Jun 25 2021 at 15:09)</a>:</h4>
<p>That's essentially what <code>RUSTC_BOOTSTRAP=1</code> allows. It turns off the restriction that prevents you from using unstable features on a stable or beta toolchain.</p>



<a name="243928655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243928655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243928655">(Jun 25 2021 at 15:09)</a>:</h4>
<p>hmm, I think there's pretty solid reasons we don't do that. My memory is that people pointed them out in response to jonhoo's proposals.</p>



<a name="243928698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243928698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243928698">(Jun 25 2021 at 15:09)</a>:</h4>
<p>I think most of those replies were unconvincing honestly</p>



<a name="243928829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243928829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243928829">(Jun 25 2021 at 15:10)</a>:</h4>
<p>and a lot of them were against things in stable. people seemed to be potentially more open to beta having "stuff"</p>



<a name="243929664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243929664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243929664">(Jun 25 2021 at 15:16)</a>:</h4>
<p>maybe a slightly less scary opt-in that's only available in beta?</p>



<a name="243931149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243931149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243931149">(Jun 25 2021 at 15:28)</a>:</h4>
<p>Well right now, if we assume that Stable is the default for a project, then moving from Stable to Beta could even be argued to be a slight loss rather than any sort of gain. Beta is good for the rust project, it's not so good for any individual user of the rust project.</p>



<a name="243933590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243933590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243933590">(Jun 25 2021 at 15:45)</a>:</h4>
<p>skimmed through <a href="https://github.com/rust-lang/rfcs/pull/3120">https://github.com/rust-lang/rfcs/pull/3120</a> and comments; it seems like part of the problem is that <code>RUSTC_BOOTSTRAP=1</code> enables all the unstable things, and you'd have to then use <code>-Z allow-features</code> to restrict them to a defined set? could we make <code>-Z allow-features</code> (and maybe only that one <code>-Z</code> option) available on beta or stable?</p>



<a name="243934371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243934371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243934371">(Jun 25 2021 at 15:51)</a>:</h4>
<p>Or maybe require <code>-Zallow-features</code> when using <code>RUSTC_BOOTSTRAP</code>?</p>



<a name="243934426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243934426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243934426">(Jun 25 2021 at 15:51)</a>:</h4>
<p>that would cause maintenance hassles for actual bootstrapping the compiler, wouldn't it?</p>



<a name="243934479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243934479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243934479">(Jun 25 2021 at 15:52)</a>:</h4>
<p>Note also that <code>RUSTC_BOOTSTRAP</code> can't be set from a build script anymore afaik. A rustflag like <code>-Zallow-features</code> can I think.</p>



<a name="243934530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243934530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243934530">(Jun 25 2021 at 15:52)</a>:</h4>
<p><span class="user-mention silent" data-user-id="411291">Taylor Yu [they/she]</span> <a href="#narrow/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F/near/243934426">said</a>:</p>
<blockquote>
<p>that would cause maintenance hassles for actual bootstrapping the compiler, wouldn't it?</p>
</blockquote>
<p>I guess.</p>



<a name="243934591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243934591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243934591">(Jun 25 2021 at 15:52)</a>:</h4>
<p>i was thinking of some option that is almost exactly like <code>RUSTC_BOOTSTRAP=1</code> except that every feature made accessible by it has to be explicitly opted-in</p>



<a name="243935364"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243935364" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243935364">(Jun 25 2021 at 15:58)</a>:</h4>
<p><span class="user-mention silent" data-user-id="411291">Taylor Yu [they/she]</span> <a href="#narrow/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F/near/243934426">said</a>:</p>
<blockquote>
<p>that would cause maintenance hassles for actual bootstrapping the compiler, wouldn't it?</p>
</blockquote>
<p>hm, i actually don't know offhand whether the bootstrap uses <code>-Z allow-features</code> right now. maybe there would be (or already is)  some benefit in doing so, like making sure that the bootstrap depends on only a well-defined set of unstable features?</p>



<a name="243935855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243935855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243935855">(Jun 25 2021 at 16:01)</a>:</h4>
<p>It doesn't right now. Also the list of unstable features used by rustc is pretty big. A quick grep results in ~100 different ones.</p>



<a name="243936568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243936568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Yu [they/she] <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243936568">(Jun 25 2021 at 16:06)</a>:</h4>
<p>hm, yeah. relatedly, it looks like a lot of stable library features depend on many unstable features for their internals?</p>



<a name="243937081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243937081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243937081">(Jun 25 2021 at 16:10)</a>:</h4>
<p>Yep, that's the case. Also many unstable intrinsics have a stable version</p>



<a name="243941730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243941730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243941730">(Jun 25 2021 at 16:51)</a>:</h4>
<p>The things I use RUSTC_BOOTSTRAP for are:</p>
<ul>
<li><code>cargo expand</code>. This uses -Zunpretty, which is inherently unstable.</li>
<li><code>cargo clippy --fix</code>. This should just be stabilized I think, I'll see about a PR for that this weekend.</li>
<li>Bisecting/reproducing issues that require a nightly feature. This is inherently unstable.</li>
</ul>
<p>So for me personally the debate is a little academic, because I will keep using RUSTC_BOOTSTRAP either way.</p>
<p>There was a suggestion a while back to make the compiler build on stable, which was rejected, and another suggestion to make it build with the beta standard library instead of master, which was also rejected. So if the idea of explicit nightly features is to add a roadblock to adding new ones to the compiler, then I doubt you'll see much support.</p>



<a name="243942161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243942161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243942161">(Jun 25 2021 at 16:54)</a>:</h4>
<p>I also want to note that I personally have no trouble with people using RUSTC_BOOTSTRAP locally, there's no issue there for the rust project as a whole. The problem is when crates depend on it (hopefully prevented with the <a href="http://build.rs">build.rs</a> block) or when large projects set it in their build system. The reason I'm against most of <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> 's proposals is because they have the explicit goal of using RUSTC_BOOTSTRAP for large projects.</p>



<a name="243942586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243942586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243942586">(Jun 25 2021 at 16:58)</a>:</h4>
<p>The suggestions I like the most are:</p>
<ul>
<li>Allow nightly features on beta (or I guess a new testing channel), but only if you also pass -Zallow-features</li>
<li>Add a new env variable like RUSTC_BOOTSTRAP, but only if you also pass -Zallow-features</li>
</ul>
<p>In both cases I do <em>not</em> think it should allow all unstable features, only a specific list that the compiler/tool teams have picked out as "could use testing"</p>



<a name="243942603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243942603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243942603">(Jun 25 2021 at 16:58)</a>:</h4>
<p>This was discussed quite a bit in the "testing channel" thread on internals I think</p>



<a name="243945725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243945725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243945725">(Jun 25 2021 at 17:25)</a>:</h4>
<p>Some form of -Zallow-features on Beta with the understanding that they're still unstable and might go away from beta later on is still a good plan.</p>



<a name="243958476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243958476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243958476">(Jun 25 2021 at 19:16)</a>:</h4>
<p>I could probably be talked into that if it's beta only</p>



<a name="243988158"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243988158" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243988158">(Jun 26 2021 at 01:43)</a>:</h4>
<p>I think I'd still want it to be narrowed to specific features we wanted to see tested, rather than everything available on nightly.</p>



<a name="243988261"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243988261" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243988261">(Jun 26 2021 at 01:46)</a>:</h4>
<blockquote>
<p>cargo clippy --fix. This should just be stabilized I think, I'll see about a PR for that this weekend.</p>
</blockquote>
<p><a href="https://github.com/rust-lang/rust-clippy/pull/7405">https://github.com/rust-lang/rust-clippy/pull/7405</a></p>



<a name="243989428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243989428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243989428">(Jun 26 2021 at 02:13)</a>:</h4>
<blockquote>
<p>I think I'd still want it to be narrowed to specific features we wanted to see tested, rather than everything available on nightly.</p>
</blockquote>
<p>Yeah. Basically <em>select</em> things that are "close to ready" can be stretched down to being in Beta as well as Nightly. This lets us expand the tester base potentially quite a bit and hopefully finish out any last minute problems that do cone up. It also lets people in the ecosystem know that new things are in the pipeline. For example, I think relatively few people were aware that min_const_generics were happening ahead of the Stable release. Outside of the rust project itself most people are far less "terminally-online".</p>



<a name="243989438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/why%20is%20nightly%20so%20attractive%3F/near/243989438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/why.20is.20nightly.20so.20attractive.3F.html#243989438">(Jun 26 2021 at 02:13)</a>:</h4>
<p>And if it doesn't work out, then it doesn't work out</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>